package com.ruoyi.mapper;

import java.util.List;
import com.ruoyi.domain.MatePurRequisition;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

/**
 * 用料采购申请Mapper接口
 * 
 * @author ruoyi
 * @date 2020-07-06
 */
public interface MatePurRequisitionMapper 
{
    /**
     * 查询用料采购申请
     * 
     * @param id 用料采购申请ID
     * @return 用料采购申请
     */
    public MatePurRequisition selectMatePurRequisitionById(Long id);

    /**
     * 查询用料采购申请列表
     * 
     * @param matePurRequisition 用料采购申请
     * @return 用料采购申请集合
     */
    public List<MatePurRequisition> selectMatePurRequisitionList(MatePurRequisition matePurRequisition);

    /**
     * 新增用料采购申请
     * 
     * @param matePurRequisition 用料采购申请
     * @return 结果
     */
    public int insertMatePurRequisition(MatePurRequisition matePurRequisition);

    /**
     * 修改用料采购申请
     * 
     * @param matePurRequisition 用料采购申请
     * @return 结果
     */
    public int updateMatePurRequisition(MatePurRequisition matePurRequisition);

    /**
     * 删除用料采购申请
     * 
     * @param id 用料采购申请ID
     * @return 结果
     */
    public int deleteMatePurRequisitionById(Long id);

    /**
     * 批量删除用料采购申请
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteMatePurRequisitionByIds(String[] ids);

    /**
     * 查询总项目对应的用料采购申请
     */
    @Select("select * from mate_pur_requisition where m_id = #{sid}")
    @ResultMap("MatePurRequisitionResult")
    List<MatePurRequisition> selectMatePurRequisitionLists(Long sid);

    /**
     * 提交【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int submitExaStatus(Long id);

    /**
     * 撤销【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int revoExaStatus(Long id);

    /**
     * 通过申请【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int conExaStatus(Long id);

    /**
     * 驳回申请【审批】
     *
     * @param id 【审批】ID
     * @return 【审批】
     */
    public int editExaStatus(Long id);



    /**
     * 通过通过id去查询是审批通过了什么材料,返回一个对象,对象里包含查询到的所有数据
     */
    @Select("select * from mate_pur_requisition where id = #{id}")
    @ResultMap("MatePurRequisitionResult")
    MatePurRequisition  ExaId(Long id);
}
